package ua.kratik.seabattle.game.enums;

/**
 * Is used to mark state of squares in a battle area 
 * 
 * @author Andrii_Kratik
 */
public enum CellState {
	
	//----------- Common markers ---------------
	/**
	 * <h4>Common marker</h4>
	 * Is used to mark your and square in enemy's area, when this 
	 * it was shot and missed.
	 */
	SHOT_AND_MISSED(0, "shot_and_missed.bmp"),
	
	/**
	 * <h4>Common marker</h4>
	 * Is used to mark your and square in enemy's area, when this 
	 * it was shot and hit.
	 */
	SHOT_AND_HIT(1, "shot_and_hit.bmp"),
	
	/**
	 * <h4>Common marker</h4>
	 * Is used to mark squares in your and enemy's area, when this 
	 * it was shot and destroyed.
	 */
	SHOT_AND_DESTROYED(2, "shot_and_destroyed.bmp"),
	
	//----------- Enemy's only markers ---------------
	/**
	 * <h4>Enemy's only marker</h4>
	 * Is used to mark only square in enemy's area, when its state is unknown. 
	 */
	UNKNOWN(3, "unknown.bmp"),
	
	/**
	 * <h4>Enemy's only marker</h4>
	 * Is used to mark only square in enemy's area by computer player when  
	 * this area is supposed to be empty 
	 */
	SUPPOSED_TO_BE_EMPTY(4, "unknown.bmp"),
	
	//----------- Yours only markers ---------------
	/**
	 * <h4>Yours only marker</h4>
	 *  Is used to mark only square in your area, when it is empty
	 */
	EMPTY(5, "sea.gif"),

	/**
	 * <h4>Yours only marker</h4>
	 *  Is used to mark only square in your area, when it contains ship 
	 *  or part of ship
	 */
	CONTAIN_SHIP(6, "ship.bmp"), 
	
	/**
	 * <h4>Yours only marker</h4>
	 *  Is used to mark only square in your area, when it is near a cell 
	 *  which contains ship or part of ship and therefore cannot contain ship
	 */
	CANNOT_CONTAIN_SHIP(7, "sea.gif");
	
	private int id;
	private String image;
	
	private CellState(int id, String image){
		this.id = id;
		this.image = image;
	}

	public int getId() {
		return id;
	}

	public String getImage() {
		return image;
	}
	
	
}
